/*
 * @Author: 肖思汗 
 * @Date: 2025-06-16 14:06:09 
 * @Last Modified by: 肖思汗
 * @Last Modified time: 2025-06-29 11:19:31
 */
import Blob from './Blob';
import { encode as ArrayBufferToBase64 } from './base64-arraybuffer';

export default class $URL {
    createObjectURL(obj) {
        if (obj instanceof Blob) {
            // use wasm to improve decode performance
            // 经测试主要耗时在于字符串拼接，使用assemblyscript的字符串拼接比js拼接慢非常多

            // 组长找到更好的方式，使用wx.fileSystemManager写入临时文件来获取url，但是需要手动管理临时文件

            // const t = Date.now();
            const base64 = ArrayBufferToBase64(obj.parts[0]);
            const url = `data:${obj.options.type};base64,${base64}`;
            // console.log('createObjectURL', Date.now() - t);
            return url;
        }

        return '';
    }

    static createObjectURL(obj) {
        if (obj instanceof Blob) {
            // use wasm to improve decode performance
            // 经测试主要耗时在于字符串拼接，使用assemblyscript的字符串拼接比js拼接慢非常多

            // 组长找到更好的方式，使用wx.fileSystemManager写入临时文件来获取url，但是需要手动管理临时文件

            // const t = Date.now();
            const base64 = ArrayBufferToBase64(obj.parts[0]);
            const url = `data:${obj.options.type};base64,${base64}`;
            // console.log('createObjectURL', Date.now() - t);
            return url;
        }

        return '';
    }

    static revokeObjectURL(url) { }

    revokeObjectURL() { }
}
